package com.qiangesoft.bootcodegen.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.bootcodegen.entity.BcgTable;
import com.qiangesoft.bootcodegen.pojo.dto.BcgTableImportDTO;
import com.qiangesoft.bootcodegen.pojo.dto.BcgTableDTO;
import com.qiangesoft.bootcodegen.pojo.query.BcgTableQuery;
import com.qiangesoft.bootcodegen.pojo.query.PageQuery;
import com.qiangesoft.bootcodegen.pojo.vo.BcgTableDetailVO;
import com.qiangesoft.bootcodegen.pojo.vo.BcgTableVO;
import com.qiangesoft.bootcodegen.pojo.vo.PageResultVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 表配置 服务类
 * </p>
 *
 * @author qiangesoft
 * @date 2024-03-28
 */
public interface IBcgTableService extends IService<BcgTable> {

    /**
     * 导入表
     *
     * @param tableImportDTO
     */
    void saveTable(BcgTableImportDTO tableImportDTO);

    /**
     * 删除表
     *
     * @param ids
     */
    void removeTable(List<Long> ids);

    /**
     * 修改表配置
     *
     * @param id
     * @param tableDTO
     */
    void updateTable(Long id, BcgTableDTO tableDTO);

    /**
     * 分页查询表配置
     *
     * @param pageQuery
     * @param tableQuery
     * @return
     */
    PageResultVO<BcgTableVO> listTable(PageQuery pageQuery, BcgTableQuery tableQuery);

    /**
     * 查询表详情
     *
     * @param id
     * @return
     */
    BcgTableDetailVO getTable(Long id);

    /**
     * 代码生成
     *
     * @param id
     * @param response
     */
    void codegenDownload(Long id, HttpServletResponse response);

    /**
     * 代码生成
     *
     * @param id
     */
    void codegenLocal(Long id);
}
